package com.hxh.essaysharing.common;

import java.util.regex.Pattern;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * @date 2023/7/23 23:18
 * 用于处理文章列表的文章摘要信息
 * 1. 对摘要去除 markdown 标签处理
 * 2. 摘要只截取文章正文前 n 个字符
 */
public class MarkdownUtils {

    // 匹配Markdown标签的正则表达式
    private static String regex = "\\*\\*|__|\\*|_|~~|`|\\[\\]|\\(|\\)|\\{|\\}|\\[|\\]|#|\\+|-|\\.|!";

    /**
     * 对摘要进行去 markdown 标签处理
     */
    public static String removeMarkdownTags(String markdown, int n) {
        // 先对 markdown 字符串进行截取
        markdown = preprocessingString(markdown, n);
        // 使用空字符串替换Markdown标签并返回
        return Pattern.compile(regex).matcher(markdown).replaceAll("");
    }

    /**
     * 截取正文的前 n 个字符作为摘要
     */
    private static String preprocessingString(String s, int n) {
        if (s == null || s == "" || n <= 0) {
            return "";
        }
        String result = "";
        if (n >= s.length()) {
            result = s.substring(0, s.length());
        } else {
            result = s.substring(0, n);
        }
        return result;
    }
}
